var express = require('express');
var router = express.Router();
//导入用户模型
const UserModel = require('../../models/UserModel');

//导入 MD5 加密模块
const md5 = require('md5');

//注册
router.get('/reg', (req, res) =>{
  //响应 HTML 页面
  res.render('reg');
});


//用户注册(输入用户名和密码来注册)
router.post('/reg', (req, res) =>{
  // // 获取用户名和密码
  // const username = req.body.username;
  // const password = req.body.password;

  // // 检查用户名和密码是否存在
  // if (!username || !password) {
  //   res.render('error', { msg: '用户名和密码不能为空', url: '/auth/reg' });
  //   return;
  // }

  // // 校验用户名格式（例如：长度限制和字符限制）
  // if (username.length < 3 || username.length > 15 || !/^[a-zA-Z0-9_]+$/.test(username)) {
  //   res.render('error', { msg: '用户名必须是3-15个字符，并且只能包含字母、数字和下划线', url: '/auth/reg' });
  //   return;
  // }

  //   // 校验密码格式（例如：长度限制和复杂度）
  //   if (password.length < 6 || password.length > 20) {
  //     res.render('error', { msg: '密码长度必须在6-20个字符之间', url: '/auth/reg' });
  //     return;
  //   }


  //获取请求体的数据
  UserModel.create({
    ...req.body,password : md5(req.body.password)
  })
    .then(data => {
      //注册成功
      res.render('success', {msg: '注册成功啦', url: '/reg'});
    })
    .catch(err => {
      //注册失败
      res.render('error', {msg: '注册失败啦', url: '/auth/reg'});
    });
});

//登录
router.get('/login', (req, res) =>{
  //响应 HTML 页面
  res.render('login');
}
);

//用户登录(输入用户名和密码来登录)
router.post('/login', (req, res) => {
  //获取用户名和密码
  let { username, password } = req.body;
  //根据用户名和密码查询数据库
  UserModel.findOne({ username, password: md5(password) })
    .then(data => {
      //判断data
      if (!data) {
        return res.send('用户名或密码错误');
      }
      //将用户信息存储到 session 中
      req.session.username = data.username;
      req.session._id = data._id;

      //登录成功响应
      res.render('success', { msg: '登录成功啦,哈哈', url: '/account' });
    })
    .catch(err => {
      res.status(500).send('登录失败，请稍候再试...');
    });
});




module.exports = router;
